<script>
import { h } from "vue";
export default {
  name: "XtxBread",
  //  解决  最后的 > 符号 ，先要 把 template 模板  删除  掉  一定要删除
  render() {
    // 返回值就是组件要显示的内容
    /* 
      1.创建 xtx-bread 父容器
      2.获取默认插槽内容
      3.去除 xtx-bread-item 组件 的 i 标签，应该有 render 函数来创建
      4.遍历插槽的 item，得到一个动态创建的节点，最后一个 item 不加 i 标签
      5.把动态创建的节点，渲染在 xtx-bread 标签中
      */
    // 第一个参数是 标签名，第二个是属性对象，第三个是子节点
    // 获取 xtx-bread 下所有的默认插槽
    const items = this.$slots.default();
    let dynaincItems = [];
    items.forEach((item, index) => {
      // console.log("执行了");
      dynaincItems.push(item);
      if (index < items.length - 1) {
        dynaincItems.push(h("i", { class: "iconfont icon-angle-right" }));
      }
      // console.log(dynaincItems);
    });

    // console.log("结果", dynaincItems);
    return h(
      "div",
      {
        class: "xtx-bread",
      },
      dynaincItems
    );
  },
};
</script>

<style  lang='less'>
// 去除 scoped 属性，目的是 让样式作用到，  xtx-bread-item 组件
.xtx-bread {
  display: flex;
  padding: 25px 10px;
  &-item {
    a {
      color: #666;
      transition: all 0.4s;
      &:hover {
        color: @xtxColor;
      }
    }
  }
  i {
    font-size: 12px;
    margin-left: 5px;
    margin-right: 5px;
    line-height: 22px;
  }

  // 这个方法也能去掉最后的 > 符号
  // .xtx-bread-item:last-of-type {
  //   > i:last-of-type {
  //     display: none;
  //   }
  // }
}
</style>